package com.ruoyi.lyy.mapper;

import com.ruoyi.lyy.domain.pojo.Order;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.lyy.domain.vo.OrderVO;
import com.ruoyi.lyy.domain.vo.RowTwoOrderCount;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * <p>
 * 订单表 Mapper 接口
 * </p>
 *
 * @author YueYang
 * @since 2025-11-13
 */
public interface OrderMapper extends BaseMapper<Order> {

    /**
     * 查询指定范围内的订单总额
     *
     * @param startTime 开始时间
     * @param endTime   结束时间
     * @return 订单总额
     */
    Double getOrderTotal(@Param("startTime") String startTime, @Param("endTime") String endTime);


    /**
     * 查询订单表根据service_type_id进行分类 获取维修，洗车等的统计数量
     *
     * @return 订单统计列表
     */
    List<RowTwoOrderCount> getOrderCountList();

    /**
     * 查询救援任务表根据status字段进行分类 3是待处理 4是已完成
     *
     * @return 救援任务统计列表
     */
    List<RowTwoOrderCount> getRescueTaskCountList();

    /**
     * 查询用户订单表根据user_id进行分类 获取用户的订单数量
     *
     * @return 用户订单统计列表
     */
    List<RowTwoOrderCount> getUserOrderCountList();

    /**
     * 根据订单id查询订单信息
     *
     * @param id 订单id
     * @return 订单信息
     */
    OrderVO queryOrderById(@Param("id") Integer id);
}
